package com.TTBook.utils;

public class CodeSecurity {
	/**
	 * 问题描述�?
	 * 文件路径由用户请求上来的，可能出席那上传�?../../windows/system32这类，导致变成了C:/webcontent/../../windows/
	 * System32,用户就可以访问到其他目录文件�?
	 * 
	 * 解决方案�?
	 * 替换path中所有的..，变�?/windows/system32 ，这样组成出来的路径就变成额C:/webcontent/windows/system32,在可控范围内
	 * @param file
	 * @return
	 */
	public static String fixPathManipulation(String file){
		return file.replaceAll("\\.\\.[/|\\\\]", "");
	}
	/**
	 * 问题描述�?
	 * 当使用sendRedirect跳转时，如果跳转地址参数是由不可信来源生成的，则用户可以使用类似以下参数值，进行相应攻击
	 * us%0d%0aCOntent-Length:%200%0d%0A%0D%0aHTTp/1.1%20200%20OK%0d%0aContent-Type:
	 * %20text/html%0d%0aContent-Length:%2019%0d%0a%0d%0a<html>Got you hackedMate</html>
	 * 
	 * 解决方案�?
	 * 替换请求地址中所有的%0d%0d回车换行�?
	 * @param url
	 * @return
	 */
	public static String fixHeaderManipulation(String url)
	{
		return url.replaceAll("%0[d|D|a|A]", "");
	}
}
